package com.forxindu.kit.box;

import android.text.TextUtils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;

public class VerifyKit {

    /**
     * <b>isMobileNO。</b>
     * <p>
     * <b>详细说明：</b>
     * </p>
     * <!-- 在此添加详细说明 --> 验证手机格式
     * 第1位：1；
     第2位：{3、4、5、6、7、8}任意数字；
     第3—11位：0—9任意数字
     *
     * @param mobiles
     * @return
     */
    public static boolean isMobile(String mobiles) {
        if (mobiles != null && mobiles.length() == 11) {
            Pattern pattern = Pattern.compile("^1[3|4|5|6|7|8][0-9]\\d{8}$");
            Matcher matcher = pattern.matcher(mobiles);
            return matcher.matches();
        }
        return false;
    }
//    public static boolean isMobile(String mobiles) {
//        String telRegex = "^((13[0-9])|(15[^4,\\D])|(18[0,2,5-9]))\\d{8}$";
//        if (TextUtils.isEmpty(mobiles)) {
//            return false;
//        } else {
//            return mobiles.matches(telRegex);
//        }
//    }

    /**
     * 验证密码是否由字母和26个英文字母组成
     */
    public static boolean isPassword(String password) {
        String passwordStr = "^[A-Za-z0-9]+$";
        if (TextUtils.isEmpty(password)) {
            return false;
        } else {
            return password.matches(passwordStr);
        }
    }

    /**
     * 验证邮箱格式
     */
    public static boolean isEmail(String email) {
        String emailStr = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
        if (TextUtils.isEmpty(email)) {
            return false;
        } else {
            return email.matches(emailStr);
        }
    }

    /**
     * 要过滤掉的字符
     */
    public static String stringFilter(String str) throws PatternSyntaxException {
        String regEx = "[`~!@#$%^&*()-+=|{}':;',\\[\\].<>/?~！@#￥%……&*（）——+|{}【】‘；：”“’。，、？]";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(str);
        return m.replaceAll("").trim();
    }

    /**
     * 验证字符串是否符合数字、英文字母、汉字
     */
    public static boolean isStringFilter(String str) {
        String regex = "^[a-zA-Z0-9\u4E00-\u9FA5]+$";
        Pattern pattern = Pattern.compile(regex);
        Matcher match = pattern.matcher(str);
        return match.matches();
    }

    /**
     * 字符在字符串中出现的次数 *  * @param string * @param a * @return
     */
    public static int occurTimes(String string, String a) {
        int pos = -2;
        int n = 0;
        while (pos != -1) {
            if (pos == -2) {
                pos = -1;
            }
            pos = string.indexOf(a, pos + 1);
            if (pos != -1) {
                n++;
            }
        }
        return n;
    }
    /**
     * 验证输入的身份证号是否合法
     */
    public static boolean isLegalId(String id){
        if (id.toUpperCase().matches("(^\\d{15}$)|(^\\d{17}([0-9]|X)$)")){
            return true;
        }else {
            return false;
        }
    }
}
